package paquete;


public class AplBiblio {
	
	public static void main(String[] args){
		
		Articulo[] array = new Articulo[10];
		array[0] = new Libro("Juegos del Hambre", "Suzanne Collins", "IDunno", 3, 5);
		array[1] = new Libro("Harry Potter y la Piedra Filosofal", "J.K.Rowling", "Salamandra", 2, 4);
		array[2] = new Pelicula("Maze Runner", "James Dashner", "Tim Burton", "Thriller", 5);
		array[1].incCantPrestamos();
		array[1].incCantPrestamos();
		array[0].addAutor("Marco �lvarez");
		array[1].addAutor("Manuel Murillo");
		array[1].addAutor("Carmen Villanueva");
		
		System.out.println(array[0].toString());
		System.out.println(array[1].toString());
		System.out.println(array[2].toString());
		
		//Prueba funciones comparativas
		System.out.println(array[0].comparaTitulo(array[0]));
		System.out.println(array[0].comparaTitulo(array[1]));
		
		System.out.println(array[0].comparaCantPrestamos(array[0]));
		
		//Define una persona nueva y la imprime
		Persona myPerson1 = new Persona("Martín", "Araya", "Calvo", "89469815", "maraca@gmail.com");
		System.out.println(myPerson1.toString());
		
		//Se le asignan dos libros a la persona y se imprimen sus posesiones.
		myPerson1.setArticulo((Libro) array[0]);
		myPerson1.setArticulo((Libro) array[1]);
		myPerson1.setArticulo((Pelicula) array[2]);
		System.out.println(myPerson1.getArticulosString());
		
		
		/*
		 * 
		 * Código que envía correo :D:D:D:D:D
		 * 
		 */
		/*
		final String fromEmail = "biblioalepoo@gmail.com"; //requires valid gmail id
        final String password = "ClaveSegura"; // correct password for gmail id
        final String toEmail = "marcelloavila@gmail.com"; // can be any email id
        final String content = "<meta charset='utf-8'><h1> ¡Bienvenido!</h1><p>		Este correo ha sido enviado automáticamente<br>por la aplicación de biblioteca de su grupo de POO<br><br></p><hr><p>Esperamos que le guste. Se aceptan ideas de como diseñar este correo y su contenido</p><img src='http://www.mediafire.com/convkey/f33b/64dj6b3sch8tp63fg.jpg' alt='LogoBoblioteca'><p>Espero que les guste,<br>Marcello</p>";
         
        System.out.println("TLSEmail Start");
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com"); //SMTP Host
        props.put("mail.smtp.port", "587"); //TLS Port
        props.put("mail.smtp.auth", "true"); //enable authentication
        props.put("mail.smtp.starttls.enable", "true"); //enable STARTTLS
         
        //create Authenticator object to pass in Session.getInstance argument
        Authenticator auth = new Authenticator() {
        //override the getPasswordAuthentication method
	        protected PasswordAuthentication getPasswordAuthentication() {
	            return new PasswordAuthentication(fromEmail, password);
	        }
        };
        Session session = Session.getInstance(props, auth);
         
        //Función con los detalles del correo y se usa asi:
        //EnvioCorreo.sendEmail(session, <destinatario>, <asunto>, <contenido>)
        EnvioCorreo.sendEmail(session, toEmail,"TLSEmail Testing Subject", content);
        
        String[] arregloCorreos = new String[4];
        arregloCorreos[0] = "marcelloavila@gmail.com";
        arregloCorreos[1] = "juliocg1695@gmail.com";
        arregloCorreos[2] = "karolsanchez09@gmail.com";
        arregloCorreos[3] = "stef.alanis03@gmail.com";
        
        for(String i : arregloCorreos){
        	EnvioCorreo.sendEmail(session, i,"TLSEmail Testing Subject", content);
        };
        /*
         * Fin código que envía correo
         * Bibliografía:
         * http://www.journaldev.com/2532/java-program-to-send-email-using-smtp-gmail-tls-ssl-attachment-image-example
         * */
		
        /*
         * Ejecuta la clase que lee un archivo
         */
        //Asignamos a 'nota' lo que hay en el archivo:
        String nota = LeerFichero.leerTexto("./texto.txt");
        //Mostramos el contenido del archivo en la consola:
        System.out.println("Lectura del archivo\n#################################");
        System.out.println(nota);
        
        //Inicio ordenamiento de libros
        Generales.addListaLibrosNoPrestados(new Libro("aaaaaa", "autor4", "editorial4", 2, 4));
        Generales.addListaLibrosNoPrestados((Libro)array[0]);
        Generales.addListaLibrosNoPrestados((Libro)array[1]);
        Generales.addListaLibrosNoPrestados(new Libro("bbbbbb", "autor3", "editorial3", 2, 4));
        Generales.addListaLibrosNoPrestados(new Libro("AAAccc", "autor5", "editorial5", 2, 4));
        Generales.addListaLibrosNoPrestados(new Libro("cccccc", "autor5", "editorial5", 2, 4));
        Generales.addListaLibrosNoPrestados(new Libro("zzzzzz", "autor6", "editorial6", 2, 4));
        Generales.addListaLibrosNoPrestados(new Libro("AAAccc", "autor5", "editorial5", 2, 4));
        Generales.addListaLibrosNoPrestados(new Libro("dddddd", "autor7", "editorial7", 2, 4));
        
        System.out.println(Generales.toString(Generales.getListaLibrosNoPrestados()));
        Generales.ordenarListaPorTitulo(Generales.getListaLibrosNoPrestados());
        System.out.println(Generales.toString(Generales.getListaLibrosNoPrestados()));
        Generales.ordenarListaPorPrestamo(Generales.getListaLibrosNoPrestados());
        System.out.println(Generales.toString(Generales.getListaLibrosNoPrestados()));
        
	}	
	
}